package com.naiterui.ehp.bs.esign.api.bjca.vo;

import org.apache.commons.lang3.builder.ToStringBuilder;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import lombok.Data;

/**
 * 医网信-签名结果回调VO
 * @author guoyongxiang
 * @date 2019/11/23 17:28
 * @since 1.0.0
 */
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class YwxSignCallbackVO {

    /** 签名状态-已签名 {@value} */
    public final static Integer STATUS_SIGNED = 2;
    /** 签名状态-拒绝 {@value} */
    public final static Integer STATUS_REJECT = 6;
    /** 签名状态-过期删除 {@value} */
    public final static Integer STATUS_EXPIRE = 7;
    /** 签名状态-作废 {@value} */
    public final static Integer STATUS_CANCEL = 9;

    /**
     * 处方ID
     */
    private String urId;

    /**
     * 医网信处方唯一标识
     */
    private String uniqueId;

    /**
     * 签名订单状态(2 已签名6 拒绝签名 7 签名订单已过期删除 9 已签名订单作废)
     */
    private Integer status;

    /**
     * 处方哈希的P7 签名（仅在签名成功时回调）
     */
    private String signedData;

    /**
     * pdf 文件流（base64 编码，（仅在pdf 签名成功状态时回调））
     */
    private String signedPdfBase64;

    /**
     * 拒绝签名原因（仅在拒绝签名状态时回调）
     */
    private String reason;

    /**
     * 签名医师openId
     */
    private String openId;


    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("urId", urId)
                .append("uniqueId", uniqueId)
                .append("status", status)
                .append("signedData", signedData)
                .append("reason", reason)
                .append("openId", openId)
                .toString();
    }
}
